package com.xufx.thread.liaoxuefeng.thread4_daemonThread;

import java.time.LocalTime;

/**
 * Created by xufx on 2021/12/27 12:45
 * java线程入口就是由jvm启动main线程，main线程又可以启动其他线程。当所有线程都运行结束时候，JVM退出，进程结束
 * 如果有一个线程没有退出，jvm就不会退出去。所以保证所有线程都能及时退出是很重要的
 * 但是有一种线程就是要无限循环的。
 */

public class TimerThread extends Thread {
    // 如果一个线程不结束，JVM就无法结束。
    // 然而这类线程经常没有负责人来负责结束它们，但是其他线程结束时，JVM进程又必须要结束
    // 这时候，就需要使用守护线程
    public static void main(String[] args) {
        DaemonThread d = new DaemonThread();
        d.setDaemon(true);
        d.start();
    }

}

class DaemonThread extends Thread {
    // 如果一个线程不结束，JVM就无法结束。
    // 然而这类线程经常没有负责人来负责结束它们，但是其他线程结束时，JVM进程又必须要结束
    // 这时候，就需要使用守护线程
    @Override
    public void run(){
        while (true){
            System.out.println(LocalTime.now());
            try {
                Thread.sleep(1000);
                System.out.println("exec...");
            }catch (InterruptedException e){
                break;
            }
        }
    }
}
